//package com.woniuxy.service.impl;
//
//import com.woniuxy.dao.OrderDao;
//import com.woniuxy.entity.Order;
//import com.woniuxy.entity.Product;
//import com.woniuxy.entity.utils.ResponseEntity;
//import com.woniuxy.service.OrderService;
//import org.apache.commons.beanutils.BeanUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.cloud.client.ServiceInstance;
//import org.springframework.cloud.client.discovery.DiscoveryClient;
//import org.springframework.http.HttpStatus;
//import org.springframework.stereotype.Service;
//import org.springframework.web.client.RestTemplate;
//
//import java.lang.reflect.InvocationTargetException;
//import java.util.List;
//import java.util.Map;
//
///**
// * @Author: 马宇航
// * @Do: order订单服务层，基于Eureka 发现服务，来替换url！
// * @DateTime: 22/06/21/0021 下午 3:17
// * @Component: 成都蜗牛学苑
// **/
//public class OrderServiceImplRibbon implements OrderService {
//    @Autowired
//    OrderDao orderDao;
//    @Autowired
//    RestTemplate restTemplate;
//    @Override
//    public ResponseEntity createOne(Integer pid, Integer count) {
//        //getForObject表示是get请求！成功获取到了商品信息！
//        ResponseEntity response =null;
//        //http://myh-product/product/ ===http://localhsot:808x/product/  必须提供注册中心才能识别myh-product
//        response = restTemplate.getForObject("http://myh-product/product/"+ pid, ResponseEntity.class);
//        if (response == null) return ResponseEntity.ERROR;
//        //获取响应码，判断是否是200请求.由于是一个Object需要转成Integer
//        Integer code = Integer.parseInt(response.get(ResponseEntity.ResponseStatus.CODE.value())+"");
//        //这个就是响应码的 200
//        int success = HttpStatus.OK.value();
//        //如果响应码不是200，说明，没有商品id。
//        if (code != success){
//            return ResponseEntity.ERROR;
//        }
//        //获取商品信息，只能使用map接收,底层使用的是LinkedHashMap！
//        Map map = (Map) response.get(ResponseEntity.ResponseStatus.DATA.value());
//        Product product = new Product();
//        try {
//            //map快速映射实体类进行赋值
//            BeanUtils.populate(product,map);
//        } catch (IllegalAccessException e) {
//            e.printStackTrace();
//        } catch (InvocationTargetException e) {
//            e.printStackTrace();
//        }
//        //订单入库
//        Order order = new Order();
//        order.setUid(1);
//        order.setUsername("周杰伦");
//        order.setPid(product.getPid());
//        order.setPrice(product.getPrice());
//        order.setNumber(count);
//        order.setPname(product.getName());
//        //扣减商品
//        Integer stock = product.getStock();
//        Integer newStock = stock-count;
//        //商品不能超卖
//        if (newStock < 0){
//            return ResponseEntity.ERROR;
//        }
//        //新建，因为没有传主键oid
//        orderDao.save(order);
//        //更新商品剩余数量
//        product.setStock(newStock);
//        //通过请求，访问商品服务的，新增(更新)商品库存
//        return restTemplate.postForObject("http://myh-product/product", product, ResponseEntity.class);
//    }
//}
